load("//bazel:skia_rules.bzl", "skia_filegroup")

# Necessary to give the //resources:resources skia_filegroup visibility to files in this directory.
skia_filegroup(
    name = "sksl",
    srcs = [
        ":sksl_blend_tests",
        ":sksl_compute_tests",
        ":sksl_error_tests",
        ":sksl_folding_tests",
        ":sksl_glsl_tests",
        ":sksl_inliner_tests",
        ":sksl_metal_tests",
        ":sksl_rte_error_tests",
        ":sksl_rte_tests",
        ":sksl_settings_tests",
        ":sksl_shared_tests",
        ":sksl_spirv_tests",
        ":sksl_wgsl_tests",
    ],
    visibility = ["//resources:__pkg__"],
)

## Tests in sksl_minify_tests_sources will be compiled with sksl-minify, and are expected to
## generate a .minified.sksl file.
skia_filegroup(
    name = "sksl_minify_tests_sources",
    srcs = [
        ":sksl_folding_tests",
        ":sksl_mesh_tests",
        ":sksl_rte_tests",
    ],
    visibility = ["//tools/sksl-minify:__pkg__"],
)

# Tests in sksl_glsl_tests_sources will be compiled with --settings on, and are expected to generate
# a .glsl output file.
skia_filegroup(
    name = "sksl_glsl_tests_sources",
    srcs = [
        ":sksl_error_tests",
        ":sksl_folding_tests",
        ":sksl_glsl_tests",
        ":sksl_inliner_tests",
        ":sksl_shared_tests",
    ],
    visibility = ["//tools/skslc:__pkg__"],
)

# Tests in sksl_glsl_settings_tests_sources will be compiled twice, once with --settings and once
# using --nosettings. In the latter mode, StandaloneSettings is appended to the output filename.
skia_filegroup(
    name = "sksl_glsl_settings_tests_sources",
    srcs = [
        ":sksl_blend_tests",
        ":sksl_settings_tests",
    ],
    visibility = ["//tools/skslc:__pkg__"],
)

# Tests in sksl_metal_tests_sources will be compiled with --settings on, and are expected to
# generate a .metal output file.
skia_filegroup(
    name = "sksl_metal_tests_sources",
    srcs = [
        ":sksl_blend_tests",
        ":sksl_compute_tests",
        ":sksl_metal_tests",
        ":sksl_shared_tests",
    ],
    visibility = ["//tools/skslc:__pkg__"],
)

## Tests in sksl_skrp_tests_sources will be compiled with --settings on, and are expected to
## generate a .skrp output file.
skia_filegroup(
    name = "sksl_skrp_tests_sources",
    srcs = [
        ":sksl_folding_tests",
        ":sksl_rte_tests",
        ":sksl_shared_tests",
    ],
    visibility = ["//tools/skslc:__pkg__"],
)

## Tests in sksl_stage_tests_sources will be compiled with --settings on, and are expected to
## generate a .stage output file.
skia_filegroup(
    name = "sksl_stage_tests_sources",
    srcs = [
        ":sksl_mesh_error_tests",
        ":sksl_mesh_tests",
        ":sksl_rte_tests",
    ],
    visibility = ["//tools/skslc:__pkg__"],
)

# Tests in sksl_spirv_tests_sources will be compiled with --settings on, and are expected to
# generate a .asm.(frag|vert|geom) output file.
skia_filegroup(
    name = "sksl_spirv_tests_sources",
    srcs = [
        ":sksl_blend_tests",
        ":sksl_compute_tests",
        ":sksl_shared_tests",
        ":sksl_spirv_tests",
    ],
    visibility = ["//tools/skslc:__pkg__"],
)

# Tests in sksl_hlsl_tests_sources will be compiled with --settings on, and are expected to
# generate a .hlsl output file.
skia_filegroup(
    name = "sksl_hlsl_tests_sources",
    srcs = [
        ":sksl_blend_tests",
        ":sksl_shared_tests",
    ],
    visibility = ["//tools/skslc:__pkg__"],
)

# Tests in sksl_wgsl_tests_sources will be compiled with --settings on, and are expected to generate
# a .wgsl output file.
skia_filegroup(
    name = "sksl_wgsl_tests_sources",
    srcs = [
        ":sksl_blend_tests",
        ":sksl_compute_tests",
        ":sksl_folding_tests",
        ":sksl_shared_tests",
        ":sksl_wgsl_tests",
    ],
    visibility = ["//tools/skslc:__pkg__"],
)

skia_filegroup(
    name = "sksl_blend_tests",
    srcs = [
        "blend/BlendClear.sksl",
        "blend/BlendColor.sksl",
        "blend/BlendColorBurn.sksl",
        "blend/BlendColorDodge.sksl",
        "blend/BlendDarken.sksl",
        "blend/BlendDifference.sksl",
        "blend/BlendDst.sksl",
        "blend/BlendDstAtop.sksl",
        "blend/BlendDstIn.sksl",
        "blend/BlendDstOut.sksl",
        "blend/BlendDstOver.sksl",
        "blend/BlendExclusion.sksl",
        "blend/BlendHardLight.sksl",
        "blend/BlendHue.sksl",
        "blend/BlendLighten.sksl",
        "blend/BlendLuminosity.sksl",
        "blend/BlendModulate.sksl",
        "blend/BlendMultiply.sksl",
        "blend/BlendOverlay.sksl",
        "blend/BlendPlus.sksl",
        "blend/BlendSaturation.sksl",
        "blend/BlendScreen.sksl",
        "blend/BlendSoftLight.sksl",
        "blend/BlendSrc.sksl",
        "blend/BlendSrcAtop.sksl",
        "blend/BlendSrcIn.sksl",
        "blend/BlendSrcOut.sksl",
        "blend/BlendSrcOver.sksl",
        "blend/BlendXor.sksl",
    ],
)

skia_filegroup(
    name = "sksl_compute_tests",
    srcs = [
        "compute/ArrayAdd.compute",
        "compute/AtomicDeclarations.compute",
        "compute/AtomicOperations.compute",
        "compute/AtomicOperationsOverArrayAndStruct.compute",
        "compute/Barrier.compute",
        "compute/BuiltinStageInputs.compute",
        "compute/Desaturate.compute",
        "compute/DesaturateFunction.compute",
        "compute/DesaturateReadWrite.compute",
        "compute/MatrixMultiply.compute",
        "compute/ModuleStructInArray.compute",
        "compute/ModuleStructInExpression.compute",
        "compute/ModuleStructInInterfaceBlock.compute",
        "compute/ModuleStructInVariable.compute",
        "compute/Raytrace.compute",
        "compute/Uniforms.compute",
        "compute/Workgroup.compute",
    ],
)

skia_filegroup(
    name = "sksl_error_tests",
    srcs = [
        "errors/ArgumentCountMismatch.rts",
        "errors/ArgumentMismatch.rts",
        "errors/ArgumentModifiers.rts",
        "errors/ArrayConstructorElementCount.sksl",
        "errors/ArrayIndexOutOfRange.rts",
        "errors/ArrayInlinedIndexOutOfRange.sksl",
        "errors/ArrayNegation.rts",
        "errors/ArrayOfInvalidSize.rts",
        "errors/ArrayOfVoid.rts",
        "errors/ArrayPlus.rts",
        "errors/ArrayReturnTypes.rts",
        "errors/ArraySplitDimensions.rts",
        "errors/ArraySplitDimensionsInFuncBody.rts",
        "errors/ArraySplitDimensionsInFuncDecl.rts",
        "errors/ArraySplitDimensionsInStruct.rts",
        "errors/ArrayTooManyDimensions.rts",
        "errors/ArrayTooManyDimensionsInFuncBody.rts",
        "errors/ArrayTooManyDimensionsInFuncBodyUnsized1.rts",
        "errors/ArrayTooManyDimensionsInFuncBodyUnsized2.rts",
        "errors/ArrayTooManyDimensionsInFuncDecl.rts",
        "errors/ArrayTooManyDimensionsInFuncDeclUnsized1.rts",
        "errors/ArrayTooManyDimensionsInFuncDeclUnsized2.rts",
        "errors/ArrayTooManyDimensionsInStruct.rts",
        "errors/ArrayTooManyDimensionsInStructUnsized1.rts",
        "errors/ArrayTooManyDimensionsInStructUnsized2.rts",
        "errors/ArrayTooManyDimensionsUnsized1.rts",
        "errors/ArrayTooManyDimensionsUnsized2.rts",
        "errors/ArrayTypeTooManyDimensions.rts",
        "errors/ArrayTypeTooManyDimensionsInFuncBody.rts",
        "errors/ArrayTypeTooManyDimensionsInFuncBodyUnsized1.rts",
        "errors/ArrayTypeTooManyDimensionsInFuncBodyUnsized2.rts",
        "errors/ArrayTypeTooManyDimensionsInFuncDecl.rts",
        "errors/ArrayTypeTooManyDimensionsInFuncDeclUnsized1.rts",
        "errors/ArrayTypeTooManyDimensionsInFuncDeclUnsized2.rts",
        "errors/ArrayTypeTooManyDimensionsInStruct.rts",
        "errors/ArrayTypeTooManyDimensionsInStructUnsized1.rts",
        "errors/ArrayTypeTooManyDimensionsInStructUnsized2.rts",
        "errors/ArrayTypeTooManyDimensionsUnsized1.rts",
        "errors/ArrayTypeTooManyDimensionsUnsized2.rts",
        "errors/ArrayUnspecifiedDimensions.sksl",
        "errors/AssignmentTypeMismatch.rts",
        "errors/BadCaps.sksl",
        "errors/BadConstInitializers.rts",
        "errors/BadFieldAccess.rts",
        "errors/BadIndex.rts",
        "errors/BadModifiers.sksl",
        "errors/BadOctal.rts",
        "errors/BinaryInvalidType.rts",
        "errors/BinaryTypeCoercion.sksl",
        "errors/BinaryTypeMismatch.rts",
        "errors/BitShiftFloat.rts",
        "errors/BitShiftFloatMatrix.rts",
        "errors/BitShiftFloatVector.rts",
        "errors/BooleanArithmetic.sksl",
        "errors/BreakOutsideLoop.rts",
        "errors/CallMain.rts",
        "errors/CallNonFunction.rts",
        "errors/CanExitWithoutReturningValue.sksl",
        "errors/CommasAsConstantExpressions.rts",
        "errors/CommasWithArrays.sksl",
        "errors/ComparisonDimensional.rts",
        "errors/ConstructorArgumentCount.rts",
        "errors/ConstructorTypeMismatch.rts",
        "errors/ContinueOutsideLoop.rts",
        "errors/DivideByZero.rts",
        "errors/DoTypeMismatch.sksl",
        "errors/DuplicateBinding.sksl",
        "errors/DuplicateFunction.rts",
        "errors/DuplicateInterfaceBlockField.sksl",
        "errors/DuplicateInterfaceBlockName.sksl",
        "errors/DuplicateOutput.sksl",
        "errors/DuplicateRTAdjust.sksl",
        "errors/DuplicateSkClockwise.sksl",
        "errors/DuplicateSymbol.rts",
        "errors/DuplicateSymbolInSwitch.rts",
        "errors/DuplicateWorkgroupSize.compute",
        "errors/EmptyArray.rts",
        "errors/EmptyBuffer.sksl",
        "errors/EmptyStruct.rts",
        "errors/ErrorsInDeadCode.rts",
        "errors/FloatRemainder.rts",
        "errors/ForInitStmt.sksl",
        "errors/ForLoopInductionVariableScope.sksl",
        "errors/ForTypeMismatch.rts",
        "errors/FunctionParamBadType.rts",
        "errors/FunctionParamShadowedByLocal.rts",
        "errors/FunctionParameterOfVoid.rts",
        "errors/GenericArgumentMismatch.rts",
        "errors/IfTypeMismatch.rts",
        "errors/IllegalRecursionComplex.rts",
        "errors/IllegalRecursionMutual.rts",
        "errors/IllegalRecursionSimple.rts",
        "errors/InVarWithInitializerExpression.sksl",
        "errors/IncompleteExpression.rts",
        "errors/IncompleteFunctionCall.rts",
        "errors/InterfaceBlockMemberReservedName.sksl",
        "errors/InterfaceBlockPrivateType.sksl",
        "errors/InterfaceBlockReservedName.sksl",
        "errors/InterfaceBlockScope.sksl",
        "errors/InterfaceBlockStorageModifiers.sksl",
        "errors/InterfaceBlockWithInvalidNestedStruct.sksl",
        "errors/InterfaceBlockWithInvalidStruct.sksl",
        "errors/InterfaceBlockWithNoMembers.sksl",
        "errors/IntrinsicInGlobalVariable.sksl",
        "errors/InvalidAssignment.rts",
        "errors/InvalidAssignmentPipelineInputs.sksl",
        "errors/InvalidAtomicDeclarations.compute",
        "errors/InvalidAtomicOperations.compute",
        "errors/InvalidBackendBindingFlagsMetal.sksl",
        "errors/InvalidBackendBindingFlagsSPIRV.sksl",
        "errors/InvalidBackendBindingFlagsWGSL.sksl",
        "errors/InvalidComputeMainParameters.compute",
        "errors/InvalidComputeMainReturn.compute",
        "errors/InvalidExtensionDirective.sksl",
        "errors/InvalidInOutType.compute",
        "errors/InvalidLocalSizeQualifier.compute",
        "errors/InvalidOutParams.sksl",
        "errors/InvalidToken.rts",
        "errors/InvalidUnary.rts",
        "errors/InvalidUniformTypes.sksl",
        "errors/InvalidUnsizedArray.compute",
        "errors/InvalidVersionDirective.sksl",
        "errors/InvalidWorkgroupCompute.compute",
        "errors/InvalidWorkgroupRTS.rts",
        "errors/LayoutInFunctions.sksl",
        "errors/LayoutInInterfaceBlock.sksl",
        "errors/LayoutInStruct.sksl",
        "errors/LayoutRepeatedQualifiers.sksl",
        "errors/MatrixIndexOutOfRange.rts",
        "errors/MatrixIndexOutOfRangeES3.sksl",
        "errors/MatrixInlinedIndexOutOfRange.sksl",
        "errors/MatrixToVectorCast3x3.rts",
        "errors/MatrixToVectorCastBoolean.rts",
        "errors/MatrixToVectorCastInteger.rts",
        "errors/MatrixToVectorCastTooSmall.rts",
        "errors/MismatchedNumbers.rts",
        "errors/MismatchedNumbersES3.sksl",
        "errors/MisplacedLocalSizeQualifier.sksl",
        "errors/MissingWorkgroupSize.compute",
        "errors/ModifiersInStruct.rts",
        "errors/ModifiersRepeated.sksl",
        "errors/MultipleBackendFlags.sksl",
        "errors/MultipleFields.rts",
        "errors/MultipleFieldsInInterfaceBlocks.sksl",
        "errors/NoES3ModifierInUserCode.sksl",
        "errors/OpaqueTypeAssignment.sksl",
        "errors/OpaqueTypeConstruction.sksl",
        "errors/OpaqueTypeInArray.sksl",
        "errors/OpaqueTypeInInterfaceBlock.sksl",
        "errors/OpaqueTypeInStruct.sksl",
        "errors/OpaqueTypeOutParam.sksl",
        "errors/OpenArray.rts",
        "errors/Ossfuzz26700.sksl",
        "errors/Ossfuzz27614.sksl",
        "errors/Ossfuzz27650.sksl",
        "errors/Ossfuzz27663.sksl",
        "errors/Ossfuzz28050.sksl",
        "errors/Ossfuzz29444.sksl",
        "errors/Ossfuzz29845.sksl",
        "errors/Ossfuzz29849.sksl",
        "errors/Ossfuzz31410.sksl",
        "errors/Ossfuzz31469.sksl",
        "errors/Ossfuzz32156.sksl",
        "errors/Ossfuzz32587.sksl",
        "errors/Ossfuzz32851.sksl",
        "errors/Ossfuzz37457.sksl",
        "errors/Ossfuzz37465.sksl",
        "errors/Ossfuzz37620.sksl",
        "errors/Ossfuzz38106.sksl",
        "errors/Ossfuzz38107.sksl",
        "errors/Ossfuzz38108.sksl",
        "errors/Ossfuzz38140.sksl",
        "errors/Ossfuzz38560.sksl",
        "errors/Ossfuzz38865.sksl",
        "errors/Ossfuzz38944.sksl",
        "errors/Ossfuzz39000.sksl",
        "errors/Ossfuzz40427.sksl",
        "errors/Ossfuzz40428.sksl",
        "errors/Ossfuzz40479.sksl",
        "errors/Ossfuzz40660.sksl",
        "errors/Ossfuzz44045.sksl",
        "errors/Ossfuzz44551.sksl",
        "errors/Ossfuzz44555.sksl",
        "errors/Ossfuzz44557.sksl",
        "errors/Ossfuzz44559.sksl",
        "errors/Ossfuzz44561.sksl",
        "errors/Ossfuzz44565.sksl",
        "errors/Ossfuzz47935.sksl",
        "errors/Ossfuzz48592.sksl",
        "errors/Ossfuzz49558.sksl",
        "errors/Ossfuzz50798.sksl",
        "errors/Ossfuzz50922.sksl",
        "errors/Ossfuzz56373.sksl",
        "errors/Ossfuzz58037.sksl",
        "errors/Ossfuzz58375.sksl",
        "errors/Ossfuzz63793.sksl",
        "errors/OverflowFloatIntrinsic.sksl",
        "errors/OverflowFloatLiteral.rts",
        "errors/OverflowInlinedLiteral.sksl",
        "errors/OverflowInt64Literal.rts",
        "errors/OverflowIntLiteral.rts",
        "errors/OverflowParamArraySize.rts",
        "errors/OverflowShortLiteral.sksl",
        "errors/OverflowUintLiteral.sksl",
        "errors/OverloadedBuiltin.sksl",
        "errors/OverloadedMain.sksl",
        "errors/PixelFormatMismatch.compute",
        "errors/PixelFormatMissing.compute",
        "errors/PixelFormatOverloads.compute",
        "errors/PrecisionQualifiersDisallowed.sksl",
        "errors/PrivateTypes.rts",
        "errors/PrivateVariables.rts",
        "errors/ProgramTooLarge_Globals.rts",
        "errors/ProgramTooLarge_InterfaceBlock.sksl",
        "errors/ProgramTooLarge_Parameters.rts",
        "errors/ProgramTooLarge_Stack.rts",
        "errors/ProgramTooLarge_Struct.rts",
        "errors/PrototypeInFuncBody.rts",
        "errors/RTAdjustType.sksl",
        "errors/ReadonlyWriteonly.compute",
        "errors/RedeclareBasicType.rts",
        "errors/RedeclareBuiltinVariables.sksl",
        "errors/RedeclareSamplerType.sksl",
        "errors/RedeclareShaderType.rts",
        "errors/RedeclareStruct.rts",
        "errors/RedeclareStructTypeWithName.rts",
        "errors/RedeclareUserType.rts",
        "errors/RedeclareVariable.rts",
        "errors/ReservedNameAsm.rts",
        "errors/ReservedNameAtomic.rts",
        "errors/ReservedNameAttribute.rts",
        "errors/ReservedNameCast.rts",
        "errors/ReservedNameDouble.rts",
        "errors/ReservedNameDvec2.rts",
        "errors/ReservedNameDvec3.rts",
        "errors/ReservedNameDvec4.rts",
        "errors/ReservedNameEnum.rts",
        "errors/ReservedNameExtern.rts",
        "errors/ReservedNameExternal.rts",
        "errors/ReservedNameFixed.rts",
        "errors/ReservedNameFvec2.rts",
        "errors/ReservedNameFvec3.rts",
        "errors/ReservedNameFvec4.rts",
        "errors/ReservedNameGoto.rts",
        "errors/ReservedNameHvec2.rts",
        "errors/ReservedNameHvec3.rts",
        "errors/ReservedNameHvec4.rts",
        "errors/ReservedNameInput.rts",
        "errors/ReservedNameInterface.rts",
        "errors/ReservedNameInvariant.rts",
        "errors/ReservedNameLong.rts",
        "errors/ReservedNameNamespace.rts",
        "errors/ReservedNameOutput.rts",
        "errors/ReservedNamePacked.rts",
        "errors/ReservedNamePrecision.rts",
        "errors/ReservedNamePublic.rts",
        "errors/ReservedNameSampler1DShadow.rts",
        "errors/ReservedNameSampler2DRectShadow.rts",
        "errors/ReservedNameSampler2DShadow.rts",
        "errors/ReservedNameSampler3DRect.rts",
        "errors/ReservedNameSamplerCube.rts",
        "errors/ReservedNameSizeof.rts",
        "errors/ReservedNameStatic.rts",
        "errors/ReservedNameSuperp.rts",
        "errors/ReservedNameTemplate.rts",
        "errors/ReservedNameThis.rts",
        "errors/ReservedNameTypedef.rts",
        "errors/ReservedNameUnion.rts",
        "errors/ReservedNameUnsigned.rts",
        "errors/ReservedNameUsing.rts",
        "errors/ReservedNameVarying.rts",
        "errors/ReservedNameVolatile.rts",
        "errors/ReturnDifferentType.rts",
        "errors/ReturnFromVoid.rts",
        "errors/ReturnMissingValue.rts",
        "errors/ReturnTypeMismatch.rts",
        "errors/SamplerExternalOES.frag",
        "errors/SelfReferentialInitializerExpression.rts",
        "errors/SpuriousFloat.rts",
        "errors/StructMemberReservedName.rts",
        "errors/StructNameWithoutIdentifier.rts",
        "errors/StructTooDeeplyNested.rts",
        "errors/StructVariableReservedName.rts",
        "errors/SwitchDuplicateCase.rts",
        "errors/SwitchDuplicateDefault.rts",
        "errors/SwitchHoistingAtomicArray.sksl",
        "errors/SwitchTypes.rts",
        "errors/SwitchVariableScope.rts",
        "errors/SwitchWithContinueInside.sksl",
        "errors/SwizzleConstantOutput.rts",
        "errors/SwizzleDomain.rts",
        "errors/SwizzleMatrix.rts",
        "errors/SwizzleOnlyLiterals.rts",
        "errors/SwizzleOutOfBounds.rts",
        "errors/SwizzleTooManyComponents.rts",
        "errors/TernaryMismatch.rts",
        "errors/UnassignedOutParameter.rts",
        "errors/UndeclaredFunction.rts",
        "errors/UndefinedFunction.rts",
        "errors/UndefinedSymbol.rts",
        "errors/UniformStructFanOut.sksl",
        "errors/UniformVarWithInitializerExpression.rts",
        "errors/UnknownDivideByZero.sksl",
        "errors/UnscopedVariableInDoWhile.sksl",
        "errors/UnscopedVariableInElse.rts",
        "errors/UnscopedVariableInFor.rts",
        "errors/UnscopedVariableInIf.rts",
        "errors/UnscopedVariableInWhile.sksl",
        "errors/UnsupportedGLSLIdentifiers.rts",
        "errors/UsingInvalidValue.rts",
        "errors/VectorIndexOutOfRange.rts",
        "errors/VectorInlinedIndexOutOfRange.sksl",
        "errors/VectorSlice.rts",
        "errors/VertexEarlyReturn.vert",
        "errors/VoidConstructor.rts",
        "errors/VoidInStruct.rts",
        "errors/VoidVariable.rts",
        "errors/WhileTypeMismatch.sksl",
    ],
)

skia_filegroup(
    name = "sksl_folding_tests",
    srcs = [
        "folding/ArrayFolding.sksl",
        "folding/ArraySizeFolding.rts",
        "folding/AssignmentOps.rts",
        "folding/BoolFolding.rts",
        "folding/CastFolding.rts",
        "folding/FloatFolding.rts",
        "folding/IntFoldingES2.rts",
        "folding/IntFoldingES3.sksl",
        "folding/LogicalNot.rts",
        "folding/MatrixFoldingES2.rts",
        "folding/MatrixFoldingES3.sksl",
        "folding/MatrixNoOpFolding.rts",
        "folding/MatrixScalarNoOpFolding.rts",
        "folding/MatrixVectorNoOpFolding.rts",
        "folding/Negation.rts",
        "folding/PreserveSideEffects.rts",
        "folding/SelfAssignment.rts",
        "folding/ShortCircuitBoolFolding.rts",
        "folding/StructFieldFolding.rts",
        "folding/StructFieldNoFolding.rts",
        "folding/SwitchCaseFolding.rts",
        "folding/SwizzleFolding.rts",
        "folding/TernaryFolding.rts",
        "folding/VectorScalarFolding.rts",
        "folding/VectorVectorFolding.rts",
    ],
)

skia_filegroup(
    name = "sksl_glsl_tests",
    srcs = [
        "glsl/ForceHighPrecision.sksl",
        "glsl/LastFragColorWithoutCaps.sksl",
        "glsl/LayoutQualifiers.sksl",
        "glsl/ShortIntPrecision.sksl",
        "glsl/TextureSharpenVersion110.sksl",
        "glsl/TextureVersion110.sksl",
        "glsl/Underscores.sksl",
        "glsl/UsesPrecisionModifiers.sksl",
        "glsl/Version110.sksl",
        "glsl/Version450Core.sksl",
        "workarounds/LastFragColor.sksl",
    ],
)

skia_filegroup(
    name = "sksl_inliner_tests",
    srcs = [
        "inliner/CommaExpressionsAllowInlining.sksl",
        "inliner/DoWhileBodyMustBeInlinedIntoAScope.sksl",
        "inliner/DoWhileTestCannotBeInlined.sksl",
        "inliner/ForBodyMustBeInlinedIntoAScope.sksl",
        "inliner/ForInitializerExpressionsCanBeInlined.sksl",
        "inliner/ForWithReturnInsideCannotBeInlined.sksl",
        "inliner/ForWithoutReturnInsideCanBeInlined.sksl",
        "inliner/IfBodyMustBeInlinedIntoAScope.sksl",
        "inliner/IfElseBodyMustBeInlinedIntoAScope.sksl",
        "inliner/IfElseChainWithReturnsCanBeInlined.sksl",
        "inliner/IfTestCanBeInlined.sksl",
        "inliner/IfWithReturnsCanBeInlined.sksl",
        "inliner/InlineKeywordOverridesThreshold.sksl",
        "inliner/InlineThreshold.sksl",
        "inliner/InlineUnscopedVariable.sksl",
        "inliner/InlineWithModifiedArgument.sksl",
        "inliner/InlineWithNestedBigCalls.sksl",
        "inliner/InlineWithNestedCalls.sksl",
        "inliner/InlineWithUnmodifiedArgument.sksl",
        "inliner/InlineWithUnnecessaryBlocks.sksl",
        "inliner/InlinerAvoidsVariableNameOverlap.sksl",
        "inliner/InlinerElidesTempVarForReturnsInsideBlock.sksl",
        "inliner/InlinerManglesNames.sksl",
        "inliner/InlinerUsesTempVarForMultipleReturns.sksl",
        "inliner/InlinerUsesTempVarForReturnsInsideBlockWithVar.sksl",
        "inliner/IntrinsicNameCollision.sksl",
        "inliner/ModifiedArrayParametersCannotBeInlined.sksl",
        "inliner/ModifiedStructParametersCannotBeInlined.sksl",
        "inliner/NoInline.sksl",
        "inliner/Ossfuzz37994.sksl",
        "inliner/Ossfuzz66207.sksl",
        "inliner/ShortCircuitEvaluationsCannotInlineRightHandSide.sksl",
        "inliner/StaticSwitch.sksl",
        "inliner/StructsCanBeInlinedSafely.sksl",
        "inliner/SwitchWithCastCanBeInlined.sksl",
        "inliner/SwitchWithoutReturnInsideCanBeInlined.sksl",
        "inliner/SwizzleCanBeInlinedDirectly.sksl",
        "inliner/TernaryResultsCannotBeInlined.sksl",
        "inliner/TernaryTestCanBeInlined.sksl",
        "inliner/TrivialArgumentsInlineDirectly.sksl",
        "inliner/TrivialArgumentsInlineDirectlyES3.sksl",
        "inliner/TypeShadowing.sksl",
        "inliner/WhileBodyMustBeInlinedIntoAScope.sksl",
        "inliner/WhileTestCannotBeInlined.sksl",
    ],
)

skia_filegroup(
    name = "sksl_metal_tests",
    srcs = [
        "metal/CastHalf4ToMat2x2.sksl",
        "metal/CastMat2x2ToMat3x3.sksl",
        "metal/CastMat2x3ToMat4x4.sksl",
        "metal/CastMat4x4ToMat3x4.sksl",
        "metal/CastMat4x4ToMat4x3.sksl",
        "metal/LastFragColorWithoutCaps.sksl",
        "metal/LayoutMtlSampler.sksl",
        "metal/NumericGlobals.sksl",
        "metal/OpaqueTypeInInterfaceBlock.sksl",
        "metal/OpaqueTypeInStruct.sksl",
        "metal/Ossfuzz48371.sksl",
        "metal/OutParams.sksl",
        "metal/OutVarsRequireLocation.sksl",
        "metal/SamplerGlobals.sksl",
        "metal/SwizzleHelper.sksl",
        "workarounds/LastFragColor.sksl",
    ],
)

skia_filegroup(
    name = "sksl_mesh_tests",
    srcs = [
        "mesh/MeshFragment.mfrag",
        "mesh/MeshFragmentWithBlender.mfrag",
        "mesh/MeshFragmentWithColorFilter.mfrag",
        "mesh/MeshFragmentWithShader.mfrag",
        "mesh/MeshVertex.mvert",
    ],
)

skia_filegroup(
    name = "sksl_mesh_error_tests",
    srcs = [
        "errors/InvalidMeshFragmentMainParameters.mfrag",
        "errors/InvalidMeshFragmentMainReturn.mfrag",
        "errors/InvalidMeshVertexMainParameters.mvert",
        "errors/InvalidMeshVertexMainReturn.mvert",
        "errors/MeshVertexWithBlender.mvert",
        "errors/MeshVertexWithColorFilter.mvert",
        "errors/MeshVertexWithShader.mvert",
    ],
)

skia_filegroup(
    name = "sksl_rte_error_tests",
    srcs = [
        "runtime_errors/Caps.rts",
        "runtime_errors/DerivativesES2.rts",
        "runtime_errors/ES3Types.rts",
        "runtime_errors/FirstClassArrays.rts",
        "runtime_errors/IllegalArrayOps.rts",
        "runtime_errors/IllegalIndexing.rts",
        "runtime_errors/IllegalLayoutFlags.rts",
        "runtime_errors/IllegalModifiers.rts",
        "runtime_errors/IllegalOperators.rts",
        "runtime_errors/IllegalPrecisionQualifiers.rts",
        "runtime_errors/IllegalShaderSampling.rts",
        "runtime_errors/IllegalShaderUse.rts",
        "runtime_errors/IllegalStatements.rts",
        "runtime_errors/InvalidBlendMain.rtb",
        "runtime_errors/InvalidColorFilterFeatures.rtcf",
        "runtime_errors/InvalidColorFilterMain.rtcf",
        "runtime_errors/InvalidShaderMain.rts",
        "runtime_errors/InvalidUniformTypes.rts",
        "runtime_errors/InvalidUniformTypesES3.rts",
        "runtime_errors/LoopConditionErrors.rts",
        "runtime_errors/LoopExpressionErrors.rts",
        "runtime_errors/LoopInitializerErrors.rts",
        "runtime_errors/LoopStructureErrors.rts",
        "runtime_errors/Ossfuzz36655.rts",
        "runtime_errors/Ossfuzz38131.rts",
        "runtime_errors/Ossfuzz45279.rts",
        "runtime_errors/Ossfuzz66263.rts",
        "runtime_errors/PrivateFunctions.rts",
        "runtime_errors/PrivateRTShader.rts",
        "runtime_errors/ProgramTooLarge_BlocklessLoops.rts",
        "runtime_errors/ProgramTooLarge_Extreme.rts",
        "runtime_errors/ProgramTooLarge_FlatLoop.rts",
        "runtime_errors/ProgramTooLarge_Functions.rts",
        "runtime_errors/ProgramTooLarge_NestedLoops.rts",
        "runtime_errors/ProgramTooLarge_SplitLoops.rts",
        "runtime_errors/ProgramTooLarge_StackDepth.rts",
        "runtime_errors/ReservedNameSampler.rts",
        "runtime_errors/ReservedNameSampler1D.rts",
        "runtime_errors/ReservedNameSampler2D.rts",
        "runtime_errors/ReservedNameSampler2DRect.rts",
        "runtime_errors/ReservedNameSampler3D.rts",
        "runtime_errors/ReservedNameSamplerExternalOES.rts",
        "runtime_errors/ReservedNameSubpassInput.rts",
        "runtime_errors/ReservedNameSubpassInputMS.rts",
        "runtime_errors/ReservedNameTexture2D.rts",
        "runtime_errors/TypeAliases.rts",
        "runtime_errors/UnsupportedExtension.rts",
        "runtime_errors/UnsupportedTypeFragmentProcessor.rts",
        "runtime_errors/UnsupportedTypeSampler.rts",
        "runtime_errors/UnsupportedTypeTexture.rts",
    ],
)

skia_filegroup(
    name = "sksl_rte_tests",
    srcs = [
        "realistic/BlueNeurons.rts",
        "realistic/HSLColorFilter.rtcf",
        "realistic/HighContrastFilter.rtcf",
        "realistic/RippleShader.rts",
        "runtime/AllowNarrowingConversions.rts",
        "runtime/ArrayIndexing.rts",
        "runtime/ArrayNarrowingConversions.rts",
        "runtime/Blend.rtb",
        "runtime/ChildEffects.rts",
        "runtime/ColorConversion.rts",
        "runtime/Commutative.rts",
        "runtime/ConstPreservation.rts",
        "runtime/ConversionConstructors.rts",
        "runtime/DivideByZero.rts",
        "runtime/FunctionParameterAliasingFirst.rts",
        "runtime/FunctionParameterAliasingSecond.rts",
        "runtime/GLSLTypeNames.rts",
        "runtime/GlobalVariables.rts",
        "runtime/LargeProgram_BlocklessLoops.rts",
        "runtime/LargeProgram_FlatLoop.rts",
        "runtime/LargeProgram_Functions.rts",
        "runtime/LargeProgram_NestedLoops.rts",
        "runtime/LargeProgram_SplitLoops.rts",
        "runtime/LargeProgram_StackDepth.rts",
        "runtime/LargeProgram_ZeroIterFor.rts",
        "runtime/LoopFloat.rts",
        "runtime/LoopInt.rts",
        "runtime/MultipleCallsInOneStatement.rts",
        "runtime/Ossfuzz52603.rts",
        "runtime/Ossfuzz65111.rtb",
        "runtime/PrecisionQualifiers.rts",
        "runtime/QualifierOrder.rts",
        "runtime/RecursiveComparison_Arrays.rts",
        "runtime/RecursiveComparison_Structs.rts",
        "runtime/RecursiveComparison_Types.rts",
        "runtime/RecursiveComparison_Vectors.rts",
        "runtime/SampleWithExplicitCoord.rts",
        "runtime/Switch.rts",
        "runtime/SwitchDefaultOnly.rts",
        "runtime/SwitchWithFallthrough.rts",
        "runtime/SwitchWithLoops.rts",
        "runtime/VectorIndexing.rts",
    ],
)

skia_filegroup(
    name = "sksl_settings_tests",
    srcs = [
        "glsl/BuiltinVariableSetup.sksl",
        "glsl/TypePrecision.sksl",
        "inliner/ExponentialGrowth.sksl",
        "inliner/InlinerCanBeDisabled.sksl",
        "shared/Derivatives.sksl",
        "shared/Optimizations.sksl",
        "shared/Switch.sksl",
        "shared/SwitchDefaultOnly.sksl",
        "shared/SwitchWithFallthrough.sksl",
        "shared/SwitchWithFallthroughAndVarDecls.sksl",
        "shared/SwitchWithLoops.sksl",
        "shared/SwitchWithLoopsES3.sksl",
        "workarounds/AbsInt.sksl",
        "workarounds/BlendGuardedDivide.sksl",
        "workarounds/BuiltinDeterminantSupport.sksl",
        "workarounds/BuiltinFMASupport.sksl",
        "workarounds/DualSourceBlending.sksl",
        "workarounds/FractNegative.sksl",
        "workarounds/FragCoords.sksl",
        "workarounds/LoopCondition.sksl",
        "workarounds/MinAndAbsTogether.sksl",
        "workarounds/NegatedAtan.sksl",
        "workarounds/NegatedLdexp.sksl",
        "workarounds/PowWithConstantExponent.sksl",
        "workarounds/RewriteDoWhileLoops.sksl",
        "workarounds/RewriteMatrixComparisons.sksl",
        "workarounds/RewriteMatrixVectorMultiply.sksl",
        "workarounds/TernaryShortCircuit.sksl",
        "workarounds/VoidInSequenceExpressions.sksl",
        "workarounds/VoidInSequenceExpressionsWithVoidMain.sksl",
    ],
)

skia_filegroup(
    name = "sksl_shared_tests",
    srcs = [
        "intrinsics/AbsFloat.sksl",
        "intrinsics/AbsInt.sksl",
        "intrinsics/Acos.sksl",
        "intrinsics/Acosh.sksl",
        "intrinsics/All.sksl",
        "intrinsics/Any.sksl",
        "intrinsics/Asin.sksl",
        "intrinsics/Asinh.sksl",
        "intrinsics/Atan.sksl",
        "intrinsics/Atanh.sksl",
        "intrinsics/BitCount.sksl",
        "intrinsics/Ceil.sksl",
        "intrinsics/ClampFloat.sksl",
        "intrinsics/ClampInt.sksl",
        "intrinsics/ClampUInt.sksl",
        "intrinsics/Cos.sksl",
        "intrinsics/Cosh.sksl",
        "intrinsics/Cross.sksl",
        "intrinsics/CrossNoInline.sksl",
        "intrinsics/DFdx.sksl",
        "intrinsics/DFdy.sksl",
        "intrinsics/DFdyNoRTFlip.sksl",
        "intrinsics/Degrees.sksl",
        "intrinsics/Determinant.sksl",
        "intrinsics/Distance.sksl",
        "intrinsics/Dot.sksl",
        "intrinsics/Equal.sksl",
        "intrinsics/Exp.sksl",
        "intrinsics/Exp2.sksl",
        "intrinsics/FaceForward.sksl",
        "intrinsics/FindLSB.sksl",
        "intrinsics/FindMSB.sksl",
        "intrinsics/FloatBitsToInt.sksl",
        "intrinsics/FloatBitsToUint.sksl",
        "intrinsics/Floor.sksl",
        "intrinsics/Fma.sksl",
        "intrinsics/Fract.sksl",
        "intrinsics/Frexp.sksl",
        "intrinsics/Fwidth.sksl",
        "intrinsics/GreaterThan.sksl",
        "intrinsics/GreaterThanEqual.sksl",
        "intrinsics/IntBitsToFloat.sksl",
        "intrinsics/Inverse.sksl",
        "intrinsics/Inversesqrt.sksl",
        "intrinsics/IsInf.sksl",
        "intrinsics/IsNan.sksl",
        "intrinsics/Ldexp.sksl",
        "intrinsics/Length.sksl",
        "intrinsics/LessThan.sksl",
        "intrinsics/LessThanEqual.sksl",
        "intrinsics/Log.sksl",
        "intrinsics/Log2.sksl",
        "intrinsics/MatrixCompMultES2.sksl",
        "intrinsics/MatrixCompMultES3.sksl",
        "intrinsics/MaxFloat.sksl",
        "intrinsics/MaxInt.sksl",
        "intrinsics/MaxUint.sksl",
        "intrinsics/MinFloat.sksl",
        "intrinsics/MinInt.sksl",
        "intrinsics/MinUint.sksl",
        "intrinsics/MixBool.sksl",
        "intrinsics/MixFloatES2.sksl",
        "intrinsics/MixFloatES3.sksl",
        "intrinsics/Mod.sksl",
        "intrinsics/Modf.sksl",
        "intrinsics/Normalize.sksl",
        "intrinsics/Not.sksl",
        "intrinsics/NotEqual.sksl",
        "intrinsics/OuterProduct.sksl",
        "intrinsics/Pack.sksl",
        "intrinsics/PackHalf2x16.sksl",
        "intrinsics/PackSnorm2x16.sksl",
        "intrinsics/PackUnorm2x16.sksl",
        "intrinsics/Pow.sksl",
        "intrinsics/Radians.sksl",
        "intrinsics/Reflect.sksl",
        "intrinsics/Refract.sksl",
        "intrinsics/Round.sksl",
        "intrinsics/RoundEven.sksl",
        "intrinsics/Sample.sksl",
        "intrinsics/SampleGrad.sksl",
        "intrinsics/SampleLod.sksl",
        "intrinsics/Saturate.sksl",
        "intrinsics/SignFloat.sksl",
        "intrinsics/SignInt.sksl",
        "intrinsics/Sin.sksl",
        "intrinsics/Sinh.sksl",
        "intrinsics/Smoothstep.sksl",
        "intrinsics/Sqrt.sksl",
        "intrinsics/Step.sksl",
        "intrinsics/Tan.sksl",
        "intrinsics/Tanh.sksl",
        "intrinsics/Transpose.sksl",
        "intrinsics/Trunc.sksl",
        "intrinsics/UintBitsToFloat.sksl",
        "intrinsics/Unpack.sksl",
        "realistic/GaussianBlur.sksl",
        "shared/ArrayCast.sksl",
        "shared/ArrayComparison.sksl",
        "shared/ArrayConstructors.sksl",
        "shared/ArrayFollowedByScalar.sksl",
        "shared/ArrayIndexTypes.sksl",
        "shared/ArrayNarrowingConversions.sksl",
        "shared/ArrayTypes.sksl",
        "shared/Assignment.sksl",
        "shared/Caps.sksl",
        "shared/CastsRoundTowardZero.sksl",
        "shared/Clockwise.sksl",
        "shared/ClockwiseNoRTFlip.sksl",
        "shared/CommaMixedTypes.sksl",
        "shared/CommaSideEffects.sksl",
        "shared/CompileTimeConstantVariables.sksl",
        "shared/ComplexDelete.sksl",
        "shared/ConstArray.sksl",
        "shared/ConstGlobal.sksl",
        "shared/ConstVariableComparison.sksl",
        "shared/ConstantCompositeAccessViaConstantIndex.sksl",
        "shared/ConstantCompositeAccessViaDynamicIndex.sksl",
        "shared/ConstantIf.sksl",
        "shared/Control.sksl",
        "shared/DeadDoWhileLoop.sksl",
        "shared/DeadGlobals.sksl",
        "shared/DeadIfStatement.sksl",
        "shared/DeadLoopVariable.sksl",
        "shared/DeadReturn.sksl",
        "shared/DeadReturnES3.sksl",
        "shared/DeadStripFunctions.sksl",
        "shared/DependentInitializers.sksl",
        "shared/DerivativesUnused.sksl",
        "shared/Discard.sksl",
        "shared/DoWhileControlFlow.sksl",
        "shared/DoubleNegation.sksl",
        "shared/EmptyBlocksES2.sksl",
        "shared/EmptyBlocksES3.sksl",
        "shared/ForLoopControlFlow.sksl",
        "shared/ForLoopMultipleInitES3.sksl",
        "shared/ForLoopShadowing.sksl",
        "shared/FragCoords.sksl",
        "shared/FragCoordsNoRTFlip.sksl",
        "shared/FunctionAnonymousParameters.sksl",
        "shared/FunctionArgTypeMatch.sksl",
        "shared/FunctionParametersOfTextureAndSamplerType.sksl",
        "shared/FunctionPrototype.sksl",
        "shared/FunctionReturnTypeMatch.sksl",
        "shared/Functions.sksl",
        "shared/GeometricIntrinsics.sksl",
        "shared/HelloWorld.sksl",
        "shared/Hex.sksl",
        "shared/HexUnsigned.sksl",
        "shared/IfStatement.sksl",
        "shared/InoutParameters.sksl",
        "shared/InoutParamsAreDistinct.sksl",
        "shared/InstanceID.vert",
        "shared/InstanceIDInFunction.vert",
        "shared/IntegerDivisionES3.sksl",
        "shared/InterfaceBlockBuffer.sksl",
        "shared/InterfaceBlockInoutArray.sksl",
        "shared/InterfaceBlockMultipleAnonymous.sksl",
        "shared/InterfaceBlockNamed.sksl",
        "shared/InterfaceBlockNamedArray.sksl",
        "shared/LogicalAndShortCircuit.sksl",
        "shared/LogicalOrShortCircuit.sksl",
        "shared/Matrices.sksl",
        "shared/MatricesNonsquare.sksl",
        "shared/MatrixConstructorsES2.sksl",
        "shared/MatrixConstructorsES3.sksl",
        "shared/MatrixEquality.sksl",
        "shared/MatrixIndexLookup.sksl",
        "shared/MatrixIndexStore.sksl",
        "shared/MatrixOpEqualsES2.sksl",
        "shared/MatrixOpEqualsES3.sksl",
        "shared/MatrixScalarMath.sksl",
        "shared/MatrixSwizzleStore.sksl",
        "shared/MatrixToVectorCast.sksl",
        "shared/MultipleAssignments.sksl",
        "shared/NestedComparisonIntrinsics.sksl",
        "shared/NoFragCoordsPos.vert",
        "shared/NoFragCoordsPosRT.vert",
        "shared/NormalizationVert.vert",
        "shared/NumberCasts.sksl",
        "shared/NumberConversions.sksl",
        "shared/Octal.sksl",
        "shared/Offset.sksl",
        "shared/OperatorsES2.sksl",
        "shared/OperatorsES3.sksl",
        "shared/Ossfuzz26167.sksl",
        "shared/Ossfuzz26759.sksl",
        "shared/Ossfuzz28794.sksl",
        "shared/Ossfuzz28904.sksl",
        "shared/Ossfuzz29085.sksl",
        "shared/Ossfuzz29494.sksl",
        "shared/Ossfuzz36770.sksl",
        "shared/Ossfuzz36852.sksl",
        "shared/Ossfuzz37466.sksl",
        "shared/Ossfuzz37677.sksl",
        "shared/Ossfuzz37900.sksl",
        "shared/Ossfuzz41000.sksl",
        "shared/Ossfuzz50636.sksl",
        "shared/Ossfuzz58483.sksl",
        "shared/Ossfuzz60077.sksl",
        "shared/Ossfuzz63170.sksl",
        "shared/OutParams.sksl",
        "shared/OutParamsAreDistinct.sksl",
        "shared/OutParamsAreDistinctFromGlobal.sksl",
        "shared/OutParamsDoubleSwizzle.sksl",
        "shared/OutParamsFunctionCallInArgument.sksl",
        "shared/Overflow.sksl",
        "shared/PostfixExpressions.sksl",
        "shared/PrefixExpressionsES2.sksl",
        "shared/PrefixExpressionsES3.sksl",
        "shared/RectangleTexture.sksl",
        "shared/ResizeMatrix.sksl",
        "shared/ResizeMatrixNonsquare.sksl",
        "shared/ReturnBadTypeFromMain.sksl",
        "shared/ReturnColorFromMain.sksl",
        "shared/ReturnsValueOnEveryPathES2.sksl",
        "shared/ReturnsValueOnEveryPathES3.sksl",
        "shared/SampleLocations.vert",
        "shared/SampleMask.sksl",
        "shared/ScalarConversionConstructorsES2.sksl",
        "shared/ScalarConversionConstructorsES3.sksl",
        "shared/ScopedSymbol.sksl",
        "shared/StackingVectorCasts.sksl",
        "shared/StaticSwitch.sksl",
        "shared/StaticSwitchWithBreak.sksl",
        "shared/StaticSwitchWithBreakInsideBlock.sksl",
        "shared/StaticSwitchWithConditionalBreak.sksl",
        "shared/StaticSwitchWithConditionalBreakInsideBlock.sksl",
        "shared/StaticSwitchWithFallthroughA.sksl",
        "shared/StaticSwitchWithFallthroughB.sksl",
        "shared/StaticSwitchWithStaticConditionalBreak.sksl",
        "shared/StaticSwitchWithStaticConditionalBreakInsideBlock.sksl",
        "shared/StorageBuffer.sksl",
        "shared/StorageBufferVertex.vert",
        "shared/StructArrayFollowedByScalar.sksl",
        "shared/StructComparison.sksl",
        "shared/StructIndexLookup.sksl",
        "shared/StructIndexStore.sksl",
        "shared/StructMaxDepth.sksl",
        "shared/Structs.sksl",
        "shared/StructsInFunctions.sksl",
        "shared/SwitchWithEarlyReturn.sksl",
        "shared/SwizzleAsLValue.sksl",
        "shared/SwizzleAsLValueES3.sksl",
        "shared/SwizzleBoolConstants.sksl",
        "shared/SwizzleByConstantIndex.sksl",
        "shared/SwizzleByIndex.sksl",
        "shared/SwizzleConstants.sksl",
        "shared/SwizzleIndexLookup.sksl",
        "shared/SwizzleIndexStore.sksl",
        "shared/SwizzleLTRB.sksl",
        "shared/SwizzleOpt.sksl",
        "shared/SwizzleScalar.sksl",
        "shared/SwizzleScalarBool.sksl",
        "shared/SwizzleScalarInt.sksl",
        "shared/TemporaryIndexLookup.sksl",
        "shared/TernaryAsLValueEntirelyFoldable.sksl",
        "shared/TernaryAsLValueFoldableTest.sksl",
        "shared/TernaryComplexNesting.sksl",
        "shared/TernaryExpression.sksl",
        "shared/TernaryNesting.sksl",
        "shared/TernaryOneZeroOptimization.sksl",
        "shared/TernarySideEffects.sksl",
        "shared/TernaryTrueFalseOptimization.sksl",
        "shared/Texture2D.sksl",
        "shared/TextureSharpen.sksl",
        "shared/UnaryPositiveNegative.sksl",
        "shared/UniformArray.sksl",
        "shared/UniformBuffers.sksl",
        "shared/UniformMatrixResize.sksl",
        "shared/UnusedVariables.sksl",
        "shared/VectorConstructors.sksl",
        "shared/VectorScalarMath.sksl",
        "shared/VectorToMatrixCast.sksl",
        "shared/VertexID.vert",
        "shared/VertexIDInFunction.vert",
        "shared/WhileLoopControlFlow.sksl",
    ],
)

skia_filegroup(
    name = "sksl_spirv_tests",
    srcs = [
        "errors/ArrayUnspecifiedDimensions.sksl",
        "errors/LayoutInInterfaceBlock.sksl",
        "errors/LayoutInStruct.sksl",
        "errors/Ossfuzz36850.sksl",
        "errors/Ossfuzz37469.sksl",
        "errors/UndefinedFunction.rts",
        "shared/Switch.sksl",
        "shared/SwitchDefaultOnly.sksl",
        "shared/SwitchWithFallthrough.sksl",
        "shared/SwitchWithLoops.sksl",
        "spirv/ArrayStrideInDifferentLayouts.sksl",
        "spirv/CombinedSamplerTypeDawnCompatMode.sksl",
        "spirv/ConstantVectorFromVector.sksl",
        "spirv/ConstantVectorize.sksl",
        "spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl",
        "spirv/InterfaceBlockPushConstant.sksl",
        "spirv/LayoutMultipleOf4.sksl",
        "spirv/LayoutOutOfOrder.sksl",
        "spirv/MixedSamplerTypes.sksl",
        "spirv/OpaqueTypeInArray.sksl",
        "spirv/Ossfuzz35916.sksl",
        "spirv/Ossfuzz37627.sksl",
        "spirv/Ossfuzz44096.sksl",
        "spirv/Ossfuzz53202.sksl",
        "spirv/Ossfuzz65538.sksl",
        "spirv/StructArrayMemberInDifferentLayouts.sksl",
        "spirv/UnusedInterfaceBlock.sksl",
        "spirv/WrongCombinedSamplerLayoutForWebGPUSampler.sksl",
        "workarounds/DualSourceBlending.sksl",
        "workarounds/MustDeclareFragmentFrontFacing.sksl",
        "workarounds/RewriteMatrixVectorMultiply.sksl",
    ],
)

skia_filegroup(
    name = "sksl_wgsl_tests",
    srcs = [
        "shared/Derivatives.sksl",
        "shared/Optimizations.sksl",
        "shared/Switch.sksl",
        "shared/SwitchDefaultOnly.sksl",
        "shared/SwitchWithFallthrough.sksl",
        "shared/SwitchWithFallthroughAndVarDecls.sksl",
        "shared/SwitchWithLoops.sksl",
        "shared/SwitchWithLoopsES3.sksl",
        "spirv/CombinedSamplerTypeDawnCompatMode.sksl",
        "spirv/FunctionParametersOfTextureAndSamplerTypeDawnCompatMode.sksl",
        "wgsl/BuiltinFragmentStageIO.sksl",
        "wgsl/BuiltinVertexStageIO.vert",
        "wgsl/CastMat2x2ToMat3x3.sksl",
        "wgsl/CastMat2x2ToVec4.sksl",
        "wgsl/CastMat2x3ToMat4x4.sksl",
        "wgsl/CastMat4x4ToMat3x4.sksl",
        "wgsl/CastMat4x4ToMat4x3.sksl",
        "wgsl/CastVec4ToMat2x2.sksl",
        "wgsl/EntrypointIsWrittenLast.sksl",
        "wgsl/Equality.sksl",
        "wgsl/FunctionCallDependencies.sksl",
        "wgsl/GlobalUniforms.sksl",
        "wgsl/IfStatement.sksl",
        "wgsl/IndexExpression.sksl",
        "wgsl/InterfaceBlockUniforms.sksl",
        "wgsl/MainDoesNotHaveFragCoordParameter.sksl",
        "wgsl/MainHasVoidReturn.sksl",
        "wgsl/MatrixConstructorDiagonal.sksl",
        "wgsl/OutParams.sksl",
        "wgsl/PixelLocalStorage.sksl",
        "wgsl/Sample.sksl",
        "wgsl/SubpassInput.sksl",
        "wgsl/TextureIntrinsics.compute",
        "wgsl/UniformArrays.sksl",
        "wgsl/UniformMatrices.sksl",
        "wgsl/UserDefinedPipelineIO.sksl",
        "wgsl/VertexPositionOutputIsAlwaysDeclared.vert",
        "wgsl/WorkgroupSize.compute",
    ],
)
